// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者，助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件，未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------

import store from "../store/index.js";
import Cache from '../utils/cache.js';
import {
	Debounce
} from '../utils/validate.js'
// #ifdef H5 || APP-PLUS
import {
	isWeixin
} from "./wechat.js";
// import auth from './wechat.js'; // 暂时注释，因为wechat.js的默认导出被注释了
// #endif

import {
	LOGIN_STATUS,
	USER_INFO,
	EXPIRES_TIME,
	STATE_R_KEY
} from './../config/cache';
import {PAGE_LOGIN, goToPage} from "../config/pages";


function prePage() {
	let pages = getCurrentPages();
	let prePage = pages[pages.length - 1];
	// #ifndef APP-PLUS
	return prePage.route;
	// #endif

	// #ifdef APP-PLUS
	// return prePage.$page.fullPath;
	// #endif

}




export const toLogin = Debounce(_toLogin, 800)

function _toLogin(push, pathLogin) {
	// 检查是否已经在登录页面，避免重复跳转
	const pages = getCurrentPages();
	const currentPage = pages[pages.length - 1];
	if (currentPage && currentPage.route === 'pages/login/login') {
		console.log('已经在登录页面，跳过跳转');
		return;
	}

	// // #ifdef H5
	// if (isWeixin()) {
	// 	if (!wx.getStorageSync('authIng')) {
	// 		store.commit("LOGOUT");
	// 	}
	// } else {
	// 	store.commit("LOGOUT");
	// }
	// // #endif

	// #ifndef H5
	store.commit("app/LOGOUT");
	// #endif

	let path = prePage();

	// #ifdef H5
	// path = location.pathname + location.search;
	// #endif

	const BASIC_CONFIG = Cache.get('BASIC_CONFIG') || {
		wechat_auth_switch: false // 默认关闭微信认证开关
	}
	if (!pathLogin)
		pathLogin = PAGE_LOGIN
	Cache.set('login_back_url', path);

	// #ifdef H5
	// if (isWeixin() && BASIC_CONFIG.wechat_status) {
	// 	wx.navigateTo({
	// 		//非认证公众号不支持 微信登录
	// 		// url: '/pages/users/wechat_login/index',
	// 		url: '/pages/users/login/index'
	// 	});
	//
	// } else {
	// 	wx.navigateTo({
	// 		url: '/pages/users/login/index'
	// 	})
	// }
	// #endif

	// #ifdef MP
	let url
	if (!BASIC_CONFIG.wechat_auth_switch) {
		url = PAGE_LOGIN
	} else {
		url = PAGE_LOGIN
	}
	console.log('_toLogin url', url)
	goToPage(url)
	// #endif

	// #ifdef APP-PLUS
	// wx.navigateTo({
	// 	url: '/pages/users/login/index'
	// })
	// #endif

}


export function checkLogin() {
	let token = Cache.get(LOGIN_STATUS);
	console.log('checkLogin', token);
	// let token
	let expiresTime = Cache.get(EXPIRES_TIME);
	// let newTime = Math.round(new Date() / 1000);
	if (!token) {
		wx.setStorageSync('authIng', false)
		Cache.clear(LOGIN_STATUS);
		Cache.clear(EXPIRES_TIME);
		Cache.clear(USER_INFO);
		Cache.clear(STATE_R_KEY);
		return false;
	} else {
		store.commit('app/UPDATE_LOGIN', token);
		let userInfo = Cache.get(USER_INFO, true);
		if (userInfo) {
			store.commit('app/UPDATE_USERINFO', userInfo);
		}
		return true;
	}

}
